home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1986-07-08 | 3.1 KB | 104 lines |
- 100 REM Cash Register Receipt Printer
- 110 REM
- 120 REM This program uses the capability of a dot-matrix printer to print
- 130 REM a register receipt
- 140 REM
- 150 REM To use, review the printer control strings and sales tax rate
- 160 REM constants at the beginning of the program and alter as
- 170 REM necessary
- 180 REM
- 190 DIM IT$(100) 'Item Desc Array
- 200 DIM IP(100) 'Item Price Array
- 210 LIM = 100 'Array Size
- 220 TXR = 0.05 'Sales Tax Rate
- 230 EPS$ = CHR$(14) 'EPSON Start Expanded Print
- 240 EPE$ = CHR$(20) 'EPSON End Expanded Print
- 250 TPS$ = CHR$(27) + "S" + CHR$(1) 'EPSON Start Tiny Print
- 260 TPE$ = CHR$(27) + "T" 'EPSON End Tiny Print
- 270 LI6$ = CHR$(27) + "2" 'EPSON Six Lines/Inch
- 280 LI8$ = CHR$(27) + "0" 'EPSON Eight Lines/Inch
- 290 CLS
- 300 PRINT "Cash Register Receipt Generator"
- 310 PRINT " "
- 320 PRINT " 0 1 1"
- 330 PRINT " ....5....0....5"
- 340 INPUT "Store Name ";ST$
- 350 IF (LEN(ST$) < 15) THEN GOSUB 1010
- 360 IF (LEN(ST$) > 15) THEN ST$ = MID$(ST$,1,15)
- 370 PRINT " "
- 380 PRINT " 99/99/9999 CR=";DATE$
- 390 INPUT "New Date ";DT$
- 400 IF DT$="" THEN DT$=DATE$
- 410 MM$ = MID$(DT$,1,2)
- 420 DD$ = MID$(DT$,4,2)
- 430 YY$ = MID$(DT$,9,2)
- 440 IX=0
- 450 ITC = 0
- 460 PRINT " 0 1 1 + = Repeat Last Item and Price"
- 470 PRINT " ....5....0....5.... CR = End Items Input"
- 480 INPUT "Item Desc ";IT$(IX)
- 490 IF IT$(IX) = "" GOTO 590
- 500 IF (IT$(IX) = "+") AND (IX > 0) THEN IT$(IX) = IT$(IX - 1):IP(IX) = IP(IX -1):GOTO 560
- 510 IF (LEN(IT$(IX)) < 19) THEN GOSUB 1070
- 520 IF (LEN(IT$(IX)) > 19) THEN IT$(IX) = MID$(IT$(IX),1,19)
- 530 PRINT " "
- 540 PRINT " 9999.99"
- 550 INPUT "Item Price ";IP(IX)
- 560 ITC = ITC + 1
- 570 IX = IX + 1
- 580 IF (IX > LIM) OR (IX = LIM) THEN GOTO 590 ELSE GOTO 460
- 590 L1$ = "|--------------------------------|"
- 600 L2$ = "| |"
- 610 STL$ = "| " + EPS$ + ST$ + EPE$ + " |"
- 620 DTL$ = "| "+ TPS$ + " " + MM$ + "/" + DD$ + "/" + YY$ + " " + TPE$ + " |"
- 630 LPRINT LI6$;
- 640 LPRINT L1$
- 650 LPRINT L2$
- 660 LPRINT STL$
- 670 LPRINT L2$
- 680 LPRINT DTL$
- 690 LPRINT LI8$;
- 700 LPRINT L2$
- 710 TOT = 0
- 720 FOR I=0 TO (ITC - 1)
- 730 LPRINT "| ";TPS$;IT$(I);
- 740 LPRINT USING "######.##";IP(I);
- 750 LPRINT " +";TPE$;" |"
- 760 TOT = TOT + IP(I)
- 770 NEXT I
- 780 LPRINT L2$
- 790 LPRINT "| ";TPS$;"SUB-TOTAL ";
- 800 LPRINT USING "######.##";TOT;
- 810 LPRINT " S";TPE$;" |"
- 820 STX = TOT * TXR
- 830 LPRINT "| ";TPS$;"SALES TAX ";
- 840 LPRINT USING "######.##";STX;
- 850 LPRINT " +";TPE$;" |"
- 860 LPRINT L2$
- 870 TOT = TOT + STX
- 880 LPRINT "| ";TPS$;"TOTAL ";
- 890 LPRINT USING "######.##";TOT;
- 900 LPRINT " *";TPE$;" |"
- 910 LPRINT LI6$;
- 920 LPRINT L2$
- 930 LPRINT "| ";EPS$;" Thank You ";EPE$;" |"
- 940 LPRINT L2$
- 950 LPRINT L1$
- 960 INPUT "Do Another Receipt (Y/N)";R$
- 970 IF R$="Y" OR R$="y" THEN GOTO 290
- 980 LPRINT CHR$(12); 'Final Form Feed
- 990 GOTO 1120
- 1000 REM Adjust Length of Store Name to Fill 15 Characters
- 1010 CT = 15 - LEN(ST$)
- 1020 FOR I=1 TO CT
- 1030 IF (((I/2) - (INT(I/2))) = 0) THEN ST$ = ST$ + " " ELSE ST$ = " " + ST$
- 1040 NEXT I
- 1050 RETURN
- 1060 REM Adjust Length of Item Description to Fill 19 Characters
- 1070 CT = 19 - LEN(IT$(IX))
- 1080 FOR I=1 TO CT
- 1090 IT$(IX) = IT$(IX) + " "
- 1100 NEXT I
- 1110 RETURN
- 1120 END
-